package com.wh.wisdomsite.xbox.core.security;


import com.wh.wisdomsite.xbox.common.XboxRequestContext;


/**
 * 声明控制对服务访问和调用的次数,频率接口
 * @Package com.wh.wisdomsite.xbox.core.security
 * @author 谢泽鹏
 * @date 2014年10月8日 下午4:02:14
 * @Copyright 个人版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2014
 * @version V1.0
 */
public interface InvokeTimesController {


    /**
     * 计算应用、会话及用户服务调度总数
     * @param xboxRequestContext
     */
    void caculateInvokeTimes(XboxRequestContext xboxRequestContext);


    /**
     * 用户服务访问次数是否超限
     * @param xboxRequestContext
     * @return
     */
    boolean isUserInvokeLimitExceed(XboxRequestContext xboxRequestContext);


    /**
     * 某个会话的服务访问次数是否超限
     * @param xboxRequestContext
     * @return
     */
    boolean isSessionInvokeLimitExceed(XboxRequestContext xboxRequestContext);


    /**
     * 应用的服务访问次数是否超限
     * @param xboxRequestContext
     * @return
     */
    boolean isAppInvokeLimitExceed(XboxRequestContext xboxRequestContext);


    /**
     * 应用对服务的访问频率是否超限
     * @param xboxRequestContext
     * @return
     */
    boolean isAppInvokeFrequencyExceed(XboxRequestContext xboxRequestContext);


    /**
     * 应用的服务访问次数是否超限
     * @param xboxRequestContext
     * @return
     */
    boolean isMethodInvokeLimitExceed(XboxRequestContext xboxRequestContext);


    /**
     * 应用对服务的访问频率是否超限
     * @param xboxRequestContext
     * @return
     */
    boolean isMethodInvokeFrequencyExceed(XboxRequestContext xboxRequestContext);
}
